# data 用来存放数据（不包括表头和城市），head 存放表头， city 存放城市
data: list
head, city = {}, {}

# 打开文件，读取所有行，暂时把所有数据存储在 data 中
data = open("xiaofei.csv", "r", encoding="gbk").readlines()
    
# 去掉第一行的换行符，并以逗号分隔为列表
line1 = data[0].replace('\n', '').split(',')

# 去掉 data 列表中表头的数据
del data[0]

# 遍历表头行，将其存到 head 字典里，作为类型的索引
for i in range(1, len(line1)):
    head[line1[i]] = i - 1

# 遍历剩下的行，每一行用逗号分隔为列表，并把第一个元素（即城市）存到 city 字典里，作为城市索引
for i in range(len(data)):
    ls = data[i].replace('\n', '').split(',')
    city[ls[0]] = i
    data[i] = ls[1:]

# 索引创建完毕，用户输入查询条件后根据索引在 data 中找到数据即可

# 用户输入数据
txt = input("请输入一个城市和若干个项目（用逗号或空格隔开）：\n")
ls = txt.replace(',', ' ').split()
choosenCity = ls[0]
if city.get(choosenCity) == None:
    print("输入的城市“{}”不存在！".format(choosenCity))
else:
    del ls[0]
    print('你输入的城市是：', choosenCity)
    for item in ls:
        if head.get(item) == None:
            print("没有“{}”这个项目名称。".format(item))
        else:
            print("“{}”的消费金额为：{}".format(item, data[city[choosenCity]][head[item]]))
